Modern buildings contain a varied and complex set of systems for managing and maintaining the building environment. Building automation systems are used to automate the control of many separate systems, such as those used for lighting, climate, security, entertainment, etc. Building automation systems can perform a number of functions, such as automation of equipment scheduling, monitoring of various building parameters, optimization of resource consumption, event or alarm reporting and handling, and many others.
Building automation system implementation requires programmatic understanding of what equipment is available to the building automation system and how that equipment may be utilized. For example, the building automation system needs to account for information such as what equipment can be run simultaneously, what groups of equipment work together to achieve a particular objective, etc. Automatic discovery of this information is challenging with current methodologies.